package org.apache.dolphinscheduler.api.service;

import org.apache.dolphinscheduler.api.dto.model.ModelDto;
import org.apache.dolphinscheduler.api.dto.model.PublishModelDto;
import org.apache.dolphinscheduler.api.utils.Result;
import org.apache.dolphinscheduler.dao.entity.Model;
import org.apache.dolphinscheduler.dao.entity.ModelProfile;
import org.apache.dolphinscheduler.dao.entity.ModelVersion;
import org.apache.dolphinscheduler.dao.entity.User;

public interface ModelService {
	
	Result<Object> queryModelByPaging(User loginUser, ModelDto dto);

	Result<Object> createModel(User loginUser, Model model);
	
	Result<Object> updateModel(User loginUser, Integer modelId, Model model);
	
	Result<Object> deleteModel(User loginUser, Integer modelId);
	
	Result<Object> createProfile(User loginUser, Integer modelId, ModelProfile profile);
	
	Result<Object> getProfile(User loginUser, Integer modelId);
	
	Result<Object> createVersion(User loginUser, Integer modelId, ModelVersion version);
	
	Result<Object> listVersion(User loginUser, Integer modelId);
	
	Result<Object> updateProfile(User loginUser, Integer profileId, ModelProfile profile);
	
	Result<Object> publish(User loginUser, PublishModelDto dto);
	
	Result<Object> unPublish(User loginUser, Integer modelId);
}
